Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


android/app/src/main/python/jnius/__init__.py e0f1f99cd1c208c5008a936230c38e448dddd45d (e0f1f99c) Text, 2.03 KB

T8b949e# SPDX-License-Identifier: 0BSD
T8b949e"""PyJNIus-compatible facade over Chaquopy's java module.

RNS, usb4a, and related Android serial/Bluetooth code import jnius.
Chaquopy does not ship pyjnius. Map the small surface those libraries need
onto Chaquopy's native Java bridge so RNode USB and classic Bluetooth work.
"""

Tff7b72from T7ee787__future__ Tff7b72import Te6edf3annotations

Te6edf3JavaException Tff7b72= Tf85149Exception

Tff7b72tryTb4b4b4:
Tff7b72from T7ee787java Tff7b72import Te6edf3cast Tff7b72as Te6edf3_java_cast
Tff7b72from T7ee787java Tff7b72import Te6edf3dynamic_proxyTb4b4b4, Te6edf3jclass
Tff7b72except Tf85149ImportError Tff7b72as Te6edf3excTb4b4b4: T8b949e# pragma: no cover - desktop import path
Tff7b72raise Tf85149ImportErrorTb4b4b4(Ta5d6ff"Ta5d6ffjnius Chaquopy shim requires the Chaquopy java moduleTa5d6ff"Tb4b4b4) Tff7b72from T7ee787exc


Tff7b72def Td2a8ffautoclassTb4b4b4(Te6edf3class_nameTb4b4b4: Tffa657strTb4b4b4)Tb4b4b4:
T8b949e"""Return a Java class, matching pyjnius autoclass."""
Tff7b72return Te6edf3jclassTb4b4b4(Te6edf3class_nameTb4b4b4)


Tff7b72def Td2a8ffcastTb4b4b4(Tff7b72clsTb4b4b4, Te6edf3objTb4b4b4)Tb4b4b4:
T8b949e"""Cast obj to cls, accepting a class name string like pyjnius."""
Tff7b72if Tffa657isinstanceTb4b4b4(Tff7b72clsTb4b4b4, Tffa657strTb4b4b4)Tb4b4b4:
Tff7b72cls Tff7b72= Te6edf3jclassTb4b4b4(Tff7b72clsTb4b4b4)
Tff7b72return Te6edf3_java_castTb4b4b4(Tff7b72clsTb4b4b4, Te6edf3objTb4b4b4)


Tff7b72def Td2a8ffjava_methodTb4b4b4(Te6edf3_signatureTb4b4b4)Tb4b4b4:
T8b949e"""No-op decorator. Chaquopy dynamic proxies do not need JNI signatures."""

Tff7b72def Td2a8ffdecoratorTb4b4b4(Te6edf3fnTb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3fn

Tff7b72return Te6edf3decorator


Tff7b72class T56d364PythonJavaClassTb4b4b4:
T8b949e"""Base that rebinds subclasses onto java.dynamic_proxy interfaces.

Subclasses set __javainterfaces__ to a list of Java interface names
(dot or slash form). Instantiation switches the instance class bases so
method implementations are visible to Java callers.
"""

Te6edf3__javainterfaces__Tb4b4b4: Tffa657listTb4b4b4[Tffa657strTb4b4b4] Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3__javacontext__ Tff7b72= Ta5d6ff"Ta5d6ffappTa5d6ff"

Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)Tb4b4b4:
Te6edf3interfaces Tff7b72= Tffa657listTb4b4b4(Tffa657getattrTb4b4b4(Tff7b72selfTb4b4b4, Ta5d6ff"Ta5d6ff__javainterfaces__Ta5d6ff"Tb4b4b4, Tb4b4b4[Tb4b4b4]Tb4b4b4) Tff7b72or Tb4b4b4[Tb4b4b4]Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3interfacesTb4b4b4:
Tff7b72return
Te6edf3resolved Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72for Te6edf3name Tff7b72in Te6edf3interfacesTb4b4b4:
Te6edf3jni_name Tff7b72= Te6edf3nameTff7b72.Td2a8ffreplaceTb4b4b4(Ta5d6ff"Ta5d6ff/Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff.Ta5d6ff"Tb4b4b4)
Te6edf3resolvedTff7b72.Td2a8ffappendTb4b4b4(Te6edf3jclassTb4b4b4(Te6edf3jni_nameTb4b4b4)Tb4b4b4)
Te6edf3proxy_base Tff7b72= Te6edf3dynamic_proxyTb4b4b4(Tff7b72*Te6edf3resolvedTb4b4b4)
Tff7b72selfTff7b72.Td2a8ff__class__Tff7b72.Td2a8ff__bases__ Tff7b72= Tb4b4b4(Te6edf3proxy_baseTb4b4b4, Tffa657objectTb4b4b4)


Te6edf3__all__ Tff7b72= Tb4b4b4[
Ta5d6ff"Ta5d6ffJavaExceptionTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffPythonJavaClassTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffautoclassTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcastTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffdynamic_proxyTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffjava_methodTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffjclassTa5d6ff"Tb4b4b4,
Tb4b4b4]


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────